<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>NetSurf | Building on RISC OS</title>
<link rel="stylesheet" title="Standard" type="text/css" href="../netsurf">
</head>

<body>
<p class="banner"><a href="../welcome/index_en"><img src="../netsurf_png" alt="NetSurf"></a></p>

<div class="navigation" style="display: none">
<div class="navsection">
<ul>
<li><a href="http://www.netsurf-browser.org/about/">About NetSurf</a></li>
<li><a href="http://www.netsurf-browser.org/downloads/">Downloads</a></li>
<li><a href="../documentation/index_en">Documentation</a>
<ul>
<li><a href="../documentation/info">User info</a></li>
<li><a href="../documentation/guide">User guide</a></li>
<li><a href="../documentation/progress">Project progress</a></li>
<li><a href="../documentation/develop">Developer info</a></li>
</ul>
</li>
<li><a href="http://www.netsurf-browser.org/developers/">Development area</a></li>
<li><a href="http://www.netsurf-browser.org/webmasters/">Webmaster area</a></li>
<li><a href="../contact/index_en">Contact</a></li>
</ul>
</div>

<div class="navsection">
<ul class="languages">
<!--<li><a href="index_de">Deutsch</a></li>-->
<li>English</li>
<!--<li><a href="index_fr">Français</a></li>-->
<!--<li><a href="index_nl">Nederlands</a></li>-->
</ul>
</div>

</div>

<div class="onlycontent">

<p class="breadcrumbs"><a href="../welcome/index_en">Home</a> » <a href="../documentation/index_en">Documentation</a> » Building NetSurf on RISC OS</p>

<h1>Building NetSurf on RISC OS</h1>

<p>This document outlines the process required to get a build system for NetSurf set up on a RISC OS machine.</p>

<ul>
<li><a href="#Requirements">Requirements</a></li>
<li><a href="#QuickStart">Quick start</a></li>
<li><a href="#UnpackingTheLibraries">Fetching and unpacking the libraries</a></li>
<li><a href="#AcquiringAndCompilingTheSource">Acquiring and compiling the source</a></li>
</ul>

<p class="updated">Last updated 21 March 2008</p>

<h2 id="Requirements">Requirements</h2>

<ul>
<li>A Filing System which supports long filenames</li>
<li>!GCC 3.4.6 release 3 or later (<a href="http://gccsdk.riscos.info/">http://gccsdk.riscos.info/</a>)</li>
<li>OSLib 6.80 or later (<a href="http://ro-oslib.sf.net/">http://ro-oslib.sf.net/</a>)</li>
<li>Perl 5.8.8 or later (<a href="http://www.cp15.org/programming/">http://www.cp15.org/programming/</a>)</li>
<li>RISC OS SVN client (<a href="http://www.cp15.org/versioncontrol/">http://www.cp15.org/versioncontrol/</a>)</li>
</ul>

<h2 id="QuickStart">Quick start</h2>

<p>This section details quick-start instructions for getting NetSurf compiled under RISC OS. If you want more detail, see the rest of this document.</p>

<ol>
<li>Download and install the <a href="#Requirements">requirements</a> listed above.</li>
<li>Download and install the pre-assembled <a href="http://www.netsurf-browser.org/downloads/other/nstools.zip">tool and library tree (2.3MB)</a>.</li>
<li>Force the RISC OS SVN client to handle ,xxx extensions correctly by issuing <code>*Set svn$filetypeext &quot;&quot;</code>.</li>
<li>Check out the latest source code from SVN.
<pre>svn co svn://svn.netsurf-browser.org/trunk/netsurf</pre></li>
<li>Set the CSD appropriately, set the next slot to 6000k and invoke <code>make</code> from a TaskWindow.</li>
</ol>

<h2 id="UnpackingTheLibraries">Fetching and unpacking the libraries</h2>

<ol>
<li>Download and unpack the pre-assembled <a href="http://www.netsurf-browser.org/downloads/other/nstools.zip">tool and library tree (2.6MB)</a>.</li>
<li>Double-click on !NSTools to open the tree.</li>
<li>Consult the !NSTools.!Help file in conjunction with <a href="http://netsurf.strcprstskrzkrk.co.uk/developer/">http://netsurf.strcprstskrzkrk.co.uk/developer/</a> in order to determine if any libraries need updating.</li>
<li>If necessary, merge any updated libraries into the !NSTools directory structure, renaming files into RISC OS format as appropriate (i.e. <code>foo/h</code> becomes <code>h.foo</code>). This should produce a directory tree like:

<pre>    !NSTools
      |
      | -- bin
      |       |
      |       | -- c
      |
      | -- include
      |       |
      |       | -- curl
      |       |     |
      |       |     | -- h
      |       |
      |       | -- h
      |       |
      |       | -- libxml
      |       |      |
      |       |      | -- h
      |       |
      |       | -- openssl
      |       |      |
      |       |      | -- h
      |
      | -- lib
              |
              | -- o</pre>

with the headers in the &quot;h&quot; directories. [This step may not be required, depending upon the naming format used for the pre-built libraries]</li>
<li>Remove any filename extensions from the files in the lib directory (e.g. <code>libxml2/a</code> becomes <code>libxml2</code>)</li>
</ol>

<h2 id="AcquiringAndCompilingTheSource">Acquiring and compiling the source</h2>

<ol>
<li>Force the RISC OS SVN client to handle ,xxx extensions correctly by issuing <code>*Set svn$filetypeext &quot;&quot;</code>. (This may be set permanently by uncommenting the appropriate line in !SVN's !Boot file)</li>
<li>Use the RISC OS SVN client to check the source out from SVN, using the following command:

<pre>svn checkout svn://svn.netsurf-browser.org/trunk/netsurf</pre>

This will check the latest sources out into a subfolder in the currently selected directory (CSD) entitled &quot;netsurf&quot;. This folder is the root of the source tree. Diagrammatically:
   
<pre>     netsurf
       |
       | -- !NetSurf
       | -- content
       | -- css
       | -- debug
       | -- desktop
       | -- gtk
       | -- Docs
       | -- image
       | -- render
       | -- riscos
       | -- utils</pre>

<li>Set the netsurf directory as your CSD, set the next slot to 6000k and invoke <code>make</code> from a TaskWindow</li>
<li>Go and make a cup of tea whilst the build happens (it takes approximately 30 minutes on a StrongARM RiscPC)</li>
</ol>


<div class="footer">
<p>Copyright 2003 - 2008 The NetSurf Developers</p>
</div>

</div>


<form method="get" action="http://www.google.co.uk/search">
<div class="searchbox" style="display:none">
<input type="hidden" name="q" value="site:netsurf-browser.org">
<input type="text" name="q" maxlength="255"><br>
<input type="submit" value="Search" name="btnG">
</div>
</form>

</body>
</html>
